<?php
class ConductoresController extends CustomController
{

    public function verConductores()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Get page and list
        $pageNumber = $this->getPage();
        $conductores = $this->model->getConductores($pageNumber);
        $vars = array(
            'edit_action'     => $this->link(MODULE_CONDUCTORES, MODULE_CONDUCTORES_EDITAR_CONDUCTOR).'?id=',
            'delete_action'   => $this->link(MODULE_CONDUCTORES, MODULE_CONDUCTORES_BORRAR_CONDUCTOR).'?id=',
            'pagination_link' => $this->link(MODULE_CONDUCTORES, MODULE_CONDUCTORES_LISTAR_CONDUCTOR),
            'conductores'     => $conductores
        );
        $this->view->verConductores($vars);
    }

    public function nuevoConductor()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Basic vars
        $vars = array(
            'nuevo_conductor' => $this->link(MODULE_CONDUCTORES, MODULE_CONDUCTORES_CREAR_CONDUCTOR)
        );
        // Post?
        if ($_POST)
        {
            $conductor = $this->getValue('conductor');
            if (empty($conductor['nombre'])) $errs[]='El nombre no puede estar vac&iacute;o';
            if (empty($conductor['apellido'])) $errs[]='El apellido no puede estar vac&iacute;o';
	    if (empty($conductor['dni'])) $errs[]='El dni no puede estar vac&iacute;o';
	    if (empty($conductor['direccion'])) $errs[]='La direcci&oacute;n no puede estar vac&iacute;a';
	    if (empty($conductor['telefono'])) $errs[]='El telefono no puede estar vac&iacute;o';

            if (!empty($errs))
            {
                $this->error($errs);
            }
            else
	    {
		$inUse = $this->model->dniInUse($conductor['dni']);
		if ($inUse)
		{
		    $errs[]= 'El dni elegido ya se encuentra en uso';
		    $this->error($errs);
		    $conductor['dni'] = '';
		}
		else
		{
		    if ($this->model->nuevoConductor($conductor))
		    {
			$this->notice("Conductor agregado exitosamente.");
			$this->redirectTo(MODULE_CONDUCTORES);
		    }
		    else
		    {
			$this->error("Error agregando conductor. Por favor intente nuevamente.");
		    }
		}
            }
            $vars['conductor'] = $conductor;
        }
        // View
        $this->view->nuevoConductor($vars);
    }

    public function borrarConductor()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Check if id exists
        $id = $this->getValue('id');
        $id = intval($id);
        if ($conductor = $this->model->conductorExists($id))
        {
            if ($this->model->borrarConductor($id))
            {
                $this->notice("Conductor borrado con &eacute;xito");
            }
            else
            {
                $this->error("El conductor no pudo ser borrado");
            }
            $this->redirectTo(MODULE_CONDUCTORES);
        }
        else
        {
            $this->error("El conductor indicado no existe");
            $this->redirectTo(MODULE_CONDUCTORES);
        }
    }

    public function editarConductor()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Check if id exists
        $id = $this->getValue('id');
        $id = intval($id);
        if ($conductor = $this->model->conductorExists($id))
        {
            // Basic vars
            $vars = array(
                'editar_conductor' => $this->link(MODULE_CONDUCTORES, MODULE_CONDUCTORES_EDITAR_CONDUCTOR)
            );
            if ($_POST)
            {
                $conductorPost = $this->getValue('conductor');
                if (empty($conductorPost['nombre'])) $errs[]='El nombre del conductor estar vac&iacute;o';
                if (empty($conductorPost['apellido'])) $errs[]='El appelido del conductor no puede estar vac&iacute;a';
				if (empty($conductorPost['dni'])) $errs[]='El dni no puede estar vac&iacute;o';
				if (empty($conductorPost['direccion'])) $errs[]='La direcci&oacute;n no puede estar vac&iacute;a';
				if (empty($conductorPost['telefono'])) $errs[]='El telefono no puede estar vac&iacute;o';
                if (!empty($errs))
                {
                    $this->error($errs);
                }
                else
                {
					$inUse = $this->model->dniInUse($conductorPost['dni']);
					if (!($inUse) || (isset($inUse[$id])))
					{
						if ($this->model->editarConductor($conductor['idconductor'], $conductorPost))
						{
							$this->notice("Conductor editado exitosamente.");
							$this->redirectTo(MODULE_CONDUCTORES);
						}
						else
						{
							$this->error("Error editando conductor. Por favor intente nuevamente.");
						}
					}
					else
					{
						$errs[]= 'El dni elegido ya se encuentra en uso';
						$this->error($errs);
						$conductor['dni'] = '';
					}
                }
                $conductorPost['idconductor'] = $conductor['idconductor'];
                $conductor = $conductorPost;
            }
            $vars['conductor'] = $conductor;
            // View
            $this->view->editarConductor($vars);
        }
        else
        {
            $this->error("El conductor indicado no existe");
            $this->redirectTo(MODULE_CONDUCTORES);
        }

    }

}
?>